Computer systems, which utilize a graphical user interface in a windows-like environment, will typically display a plurality of windows. Each of the windows can be moved via a pointing device. Typically each window has a separate existence on a graphical user interface desktop with its own content pane, docking pane, borders, title bar, and tool bar. A “content pane” is a pane that has arbitrary contents such as text. A content pane can be “undocked” and “docked” by moving it from one window into another window, referred to as a “host window.” The user moves or “drags” the content pane using a dragging gesture of the mouse. A user can also move the content pane with arrow keys on a keyboard. When a content pane is docked, it may rest in a docking pane. A “docking pane” is an area inside the host window, which can host the content pane. So a content pane is undocked from the docking pane of one window and then docked or redocked into the docking pane of another window. To illustrate the docking and undocking feature, refer now to the following description in conjunction with the accompanying figures.
FIGS. 1 and 2 illustrate a conventional docking and undocking of a content pane 12 into a host window 10. In FIG. 1, docking and undocking feedback is provided by a dragged gray or black outline 14 through which the underlying components can be seen. This outline 14 shows the size and orientation of a window whether docking or undocking. When undocking the content pane 12, the outline 14 is a thick granular gray border with the size and orientation of the resulting window. In FIG. 2, when docking the content pane 12, the outline 15 is a thin black border with the size and orientation (but not the precise docking area) of the resulting docking pane. A result of docking (not shown) is a border region separated from the center of the host window with a splitter bar. A splitter bar, or “splitter,” divides two panes arranged horizontally or vertically. The problems with the conventional docking and undocking of content panes utilizing the conventional method are described herein below.
Docking occurs only in the four border regions of the host window, not in the center of the host window. In a border region, multiple docking panes can be arranged in only one direction. Docking areas are limited to four docking areas. In the direction of the splitter bar, docking always occurs outside the split panes. Given a vertical splitter bar, for example, the left-top, left-bottom, right-top, and right-bottom docking areas are not available. The feedback during docking and undocking shows only the orientation and size of the resulting docked content pane, but not how the existing docking panes will be moved and resized. One conventional solution uses a technique where a transparent rectangle is displayed. The outline of the transparent rectangle changes shape and size to indicate a dockable docking area. Another conventional solution also uses this technique in combination with displaying different cursors to show dockable docking areas. Nevertheless, users still have difficulty predicting the arrangement of views that will result if they drop a view at a given location, because the feedback during docking and undocking does not show how the existing docking panes will be moved and resized.
Furthermore, a point on the mouse cursor, or a point on the object being dragged, called the hotspot, must be over a particular area on the screen to get a particular arrangement. Both the hotspot and the docking areas on the screen must be visible to the user to more accurately predict the resulting arrangement. Otherwise, when a content pane is placed in an ambiguous area, such as between two border regions, it is unpredictable where the content pane will be ultimately docked. Therefore, the visual feedback to the user must give the user an adequate indication of the ultimate result of the docking. Finally, there are typically areas in a host window that are not eligible for docking, and the locations of these areas are not clear unless both the hotspot and the docking areas on the screen are visible.
Accordingly, what is needed is a method and system for overcoming the above identified problems. The present invention addresses such a need.